package com.fosss.band.service;

import com.fosss.band.entity.vo.LoginUserVo;
import com.fosss.band.entity.vo.RegisterUserVo;
import com.fosss.band.entity.vo.UserInfoVo;
import com.fosss.band.utils.Result;

/**
 * @author: fosss
 * Date: 2023/12/28
 * Time: 17:36
 * Description:
 */
public interface UserService {
    /**
     * 用户登录
     */
    Result login(LoginUserVo loginUser);

    /**
     * 发送验证码
     */
    Result sendCode(String email);

    /**
     * 注册
     */
    Result register(RegisterUserVo registerUser);

    /**
     * 找回密码
     */
    Result forgetPassword(RegisterUserVo registerUser);

    /**
     * 获取用户信息
     */
    Result info(String token);

    /**
     * 用户登出
     */
    Result logout(String token);

    /**
     * 修改个人信息
     */
    Result saveInfo(UserInfoVo userInfoVo);

    /**
     * 验证验证码是否正确
     */
    Result emailCodeRight(String email, String code);

    /**
     * 根据用户名获取用户信息
     */
    Result getByUsername(String username);
}
